<?php 
/**
 *  Por Federico Pisarello - SisDev Software (c) 2012 - Buenos Aires, Argentina.
 * 	fpisarello@sisdevsoft.com
 */

require("includes/funciones.inc.php");
session_start();

function searchABMTitulos()
{
	
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");
	
	$datatables = new Datatables();
	$datatables->__construct();
	
	$datatables->select('idTitulo, titulos.descripcion, nroTitulo, nroContaduria, nroEscritura');
	$datatables->from('titulos');
	$datatables->where('estado <>', $stateErase);
	$datatables->join('provincias', 'titulos.idProvincia = provincias.idProvincia', 'inner');
	$datatables->select('provincias.descripcion descProvincia');
	$datatables->join('localidades', 'titulos.idProvincia = localidades.idProvincia AND titulos.idLocalidad = localidades.idLocalidad', 'inner');
	$datatables->select('localidades.descripcion descLocalidad');
		
	return $datatables->generate();
}

function addTitulos()
{
	require("includes/constants.php");

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;

	$DB->StartTrans(); // start transaction
	
	$strSQL = "INSERT INTO titulos ( ";
	$strSQL .= "	nroContaduria, ";
	$strSQL .= "	nroTitulo, ";
	$strSQL .= "	nroEscritura, ";
	$strSQL .= "	annoEscritura, ";
	$strSQL .= "	dptoPartido, ";
	$strSQL .= "	idLocalidad, ";
	$strSQL .= "	idProvincia, ";
	$strSQL .= "	transmitente, ";
	$strSQL .= "	adquirente, ";
	$strSQL .= "	descripcion, ";
	$strSQL .= "	observaciones, ";
	$strSQL .= "	estado ";
	$strSQL .= "	) VALUES ( ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["nroContaduria"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["nroTitulo"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["nroEscritura"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["annoEscritura"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["partidoDpto"], "UTF-8")."', ";
	$strSQL .= "	".$_REQUEST["cmbLocalidad"].", ";
	$strSQL .= "	".$_REQUEST["cmbProvincia"].", ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["transmitente"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["adquirente"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["descripcion"], "UTF-8")."', ";
	$strSQL .= "	'".mb_strtoupper($_REQUEST["observaciones"], "UTF-8")."', ";
	$strSQL .= "	'".$stateAdd."'";
	$strSQL .= "	)";
	
	$DB->Execute($strSQL);
	
	$insertID = $DB->Insert_ID();
	
	//Registro de Auditoria
	$strSQL = "INSERT INTO auditoria (idUsuario, idTitulo, estado, fecha) VALUES (".$_SESSION['idUsusario'].", ".$insertID.", '$stateAddAudit', CURRENT_TIMESTAMP())";
	$DB->Execute($strSQL);
	
	
	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = 'Ocurri&oacute; un error al grabar el Titulo/Escritura';
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = 'El registro se guard&oacute; correctamente';
	}	
	return json_encode($arrJSON);
}

function updateTitulos()
{
	require("includes/constants.php");

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;

	$DB->StartTrans(); // start transaction
	
	$strSQL = "UPDATE titulos SET ";
	$strSQL .= "	nroContaduria = '".mb_strtoupper($_REQUEST["nroContaduria"], "UTF-8")."', ";
	$strSQL .= "	nroTitulo = '".mb_strtoupper($_REQUEST["nroTitulo"], "UTF-8")."', ";
	$strSQL .= "	nroEscritura = '".mb_strtoupper($_REQUEST["nroEscritura"], "UTF-8")."', ";
	$strSQL .= "	annoEscritura = '".mb_strtoupper($_REQUEST["annoEscritura"], "UTF-8")."', ";
	$strSQL .= "	dptoPartido = '".mb_strtoupper($_REQUEST["partidoDpto"], "UTF-8")."', ";
	$strSQL .= "	idLocalidad = ".$_REQUEST["cmbLocalidad"].", ";
	$strSQL .= "	idProvincia = ".$_REQUEST["cmbProvincia"].", ";
	$strSQL .= "	transmitente = '".mb_strtoupper($_REQUEST["transmitente"], "UTF-8")."', ";
	$strSQL .= "	adquirente = '".mb_strtoupper($_REQUEST["adquirente"], "UTF-8")."', ";
	$strSQL .= "	descripcion = '".mb_strtoupper($_REQUEST["descripcion"], "UTF-8")."', ";
	$strSQL .= "	observaciones = '".mb_strtoupper($_REQUEST["observaciones"], "UTF-8")."', ";
	$strSQL .= "	estado = '".$stateModify."'";
	$strSQL .= " WHERE idTitulo = ". $_REQUEST["idTitulo"];
	
	$DB->Execute($strSQL);
	
	//Registro de Auditoria
	$strSQL = "INSERT INTO auditoria (idUsuario, idTitulo, estado, fecha) VALUES (".$_SESSION['idUsusario'].", ".$_REQUEST["idTitulo"].", '$stateModifyAudit', CURRENT_TIMESTAMP())";
	$DB->Execute($strSQL);
	
	
	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = 'Ocurri&oacute; un error al grabar el Titulo/Escritura';
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = 'El registro se guard&oacute; correctamente';
	}	
	return json_encode($arrJSON);
}

function del()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	$DB->Execute("UPDATE titulos SET estado='$stateErase' WHERE idTitulo = " . $_REQUEST["idTitulo"]); // execute query
	
	//Registro de Auditoria
	$strSQL = "INSERT INTO auditoria (idUsuario, idTitulo, estado, fecha) VALUES (".$_SESSION['idUsusario'].", ".$_REQUEST["idTitulo"].", '$stateEraseAudit', CURRENT_TIMESTAMP())";
	$DB->Execute($strSQL);
	

	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = 'Ocurri&oacute; un error al eliminar el Titulo/Escritura';
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = 'El registro se elimin&oacute; correctamente';
	}	
	return json_encode($arrJSON);
}

function getProvincias()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsProvincias = $DB->Execute("SELECT idProvincia, descripcion FROM provincias");
	
	$i=0;
	while(!$rsProvincias->EOF){
		$arrProvincias->data[$i]['idProvincia'] = $rsProvincias->fields('idProvincia');
		$arrProvincias->data[$i++]['descripcion'] = $rsProvincias->fields('descripcion');
		$rsProvincias->MoveNext();
	}
	
	return json_encode($arrProvincias->data);
}

function getLocalidades()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsLocalidades = $DB->Execute("SELECT idLocalidad, descripcion FROM localidades WHERE idProvincia = " . $_REQUEST['idProvincia'] . " ORDER BY descripcion");
	
	if($rsLocalidades->EOF) 
		return json_encode(array());
	
	$i=0;
	while(!$rsLocalidades->EOF){
		$arrLocalidades->data[$i]['idLocalidad'] = $rsLocalidades->fields('idLocalidad');
		$arrLocalidades->data[$i++]['descripcion'] = $rsLocalidades->fields('descripcion');
		$rsLocalidades->MoveNext();
	}
	
	return json_encode($arrLocalidades->data);
}

function editTitulos()
{
	require("includes/constants.php");
		
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsTitulo = $DB->Execute("SELECT * FROM titulos WHERE estado <> '$stateErase' AND idTitulo = " . $_REQUEST["idTitulo"]); // execute query
						
	if(!$rsTitulo->EOF){
		$joTitulo->data['idTitulo'] = $rsTitulo->fields("idTitulo");
		$joTitulo->data['nroContaduria'] = $rsTitulo->fields("nroContaduria");
		$joTitulo->data['nroTitulo'] = $rsTitulo->fields("nroTitulo");
		$joTitulo->data['nroEscritura'] = $rsTitulo->fields("nroEscritura");
		$joTitulo->data['annoEscritura'] = $rsTitulo->fields("annoEscritura");
		$joTitulo->data['dptoPartido'] = $rsTitulo->fields("dptoPartido");
		$joTitulo->data['idLocalidad'] = $rsTitulo->fields("idLocalidad");
		$joTitulo->data['idProvincia'] = $rsTitulo->fields("idProvincia");
		$joTitulo->data['transmitente'] = $rsTitulo->fields("transmitente");
		$joTitulo->data['adquirente'] = $rsTitulo->fields("adquirente");
		$joTitulo->data['descripcion'] = $rsTitulo->fields("descripcion");
		$joTitulo->data['observaciones'] = $rsTitulo->fields("observaciones");
		
		return json_encode($joTitulo->data);
	}
	else
		return json_encode('');
}

function batchFileDBF()
{
	require("includes/constants.php");
	require("includes/dbf_class.php");
	
	set_time_limit(0);
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	//Abro el DBF a Procesar
	$dbf = new dbf_class('import/'.$_REQUEST["fileName"]);
	$num_rec=$dbf->dbf_num_rec;
	
	$DB->Execute("DELETE FROM titulos"); //Borro todos los titulos cargados
	
  	for ($iLoop = 0; $iLoop < $num_rec; $iLoop++) 
  	{
  		$rowData = $dbf->getRowByName($iLoop);
		
		//Busco la localidad y la provincia
		$rsLocalidad = $DB->Execute("SELECT idLocalidad, descripcion FROM localidades WHERE descripcion like '%".limpiarCaracteresEspeciales($rowData['PARTIDO'])."%'");
		$rsProvincia = $DB->Execute("SELECT idProvincia, descripcion FROM provincias WHERE descripcion like '%".limpiarCaracteresEspeciales($rowData['PROVINCIA'])."%'");
		
		if($rsLocalidad->EOF)
			$idLocalidad = $idLocalidadDefault;
		else
			$idLocalidad = $rsLocalidad->fields(0);
		
		if($rsProvincia->EOF)
			$idProvincia = $idProvinciaDefault;
		else
			$idProvincia = $rsProvincia->fields(0);
		
  		$strSQL = "INSERT INTO titulos ( ";
		$strSQL .= "	nroContaduria, ";
		$strSQL .= "	nroTitulo, ";
		$strSQL .= "	nroEscritura, ";
		$strSQL .= "	annoEscritura, ";
		$strSQL .= "	dptoPartido, ";
		$strSQL .= "	idLocalidad, ";
		$strSQL .= "	idProvincia, ";
		$strSQL .= "	transmitente, ";
		$strSQL .= "	adquirente, ";
		$strSQL .= "	descripcion, ";
		$strSQL .= "	observaciones, ";
		$strSQL .= "	estado ";
		$strSQL .= "	) VALUES ( ";
		$strSQL .= "	'"."000000"."', ";
		$strSQL .= "	'".$rowData['NRO_INSCR']."', ";
		$strSQL .= "	'"."000000"."', ";
		$strSQL .= "	'"."1900"."', ";
		$strSQL .= "	'', ";
		$strSQL .= "	'".$idLocalidad."', ";
		$strSQL .= "	'".$idProvincia."', ";
		$strSQL .= "	'".$rowData['TRAMITENTE']."', ";
		$strSQL .= "	'".$rowData['ADQUIRENTE']."', ";
		$strSQL .= "	'".$rowData['UBICACION']."', ";
		$strSQL .= "	'', ";
		$strSQL .= "	'$stateAdd' ";
		$strSQL .= "	)";

	  	$DB->Execute($strSQL);
	}
	
	$arrJSON->status = "OK";
	$arrJSON->msg = 'El archivo se Import&oacute; con Exito';
	
	return json_encode($arrJSON);
}

function limpiarCaracteresEspeciales($string)
{
	$string = htmlentities($string); 
	$string = preg_replace('/\&(.)[^;]*;/', '\\1', $string); 
	return $string;
}

switch($_REQUEST['accion'])
{
	case "search":
		echo searchABMTitulos();
		break;
		
	case "EDIT":
		echo editTitulos();
		break;
		
	case "DELETE":
		echo del();
		break;		
		
	case "NEW":
		echo addTitulos();
		break;
		
	case "UPDATE":
		echo updateTitulos();
		break;
				
	case "getProvincias":
		echo getProvincias();
		break;
		
	case "getLocalidades":
		echo getLocalidades();
		break;
		
	case "batchFileDBF":
		echo batchFileDBF();
		break;
}
?>